Amazon Q Business と S3 を連携してみた
目的
クラスメソッドタイランドの清水です。
2024年4月30日に Amazon Q Business の一般提供が開始されました。
様々なデータソースから学習する生成 AI を手軽に使えるサービスで、2024年5月13日現在は、us-west-1 と us-east-1 でのみ提供されています。
本記事では、Amazon Q Business と S3 を連携し、S3 にアップロードしたテキストについてチャットで質問を投げてみたいと思います。
手順
まずは、us-east-1 と us-west-1 のどちらで Amazon Q Business を使うかを決めます。
この記事では us-east-1
で進めます。
IAM Identity Center の Instance を作成する
Amazon Q Business を使うには IdP を事前に用意しておく必要があります。
今回は IAM Identity Center の Account Instance を使いました。
⚠️ IAM Identity Center は Amazon Q Business と同じ、つまり今回は us-east-1 で作成する必要があります。
また、 IAM Identity Center の Account Instance は 1つのアカウントにつき1つのリージョンでしか作成できないので、すでに他のリージョンに Instance がある場合はそれを削除して目的のリージョンで Instance を作るか、別の IdP を使う必要があります。
現時点で AWS のドキュメントで紹介されている別の IdP は Entra ID, Okta, PingIdentity です。
学習させるデータを S3 に置く
今回は yuta-qbusiness-test
という名前で us-east-1
にバケットを作りました。
prefix
を data
として、Kendra のドキュメント[1]から拝借したサンプルデータ tutorial-dataset.zip
を解凍して格納しています。
⚠️ S3 バケットも Amazon Q Business と同じ us-east-1 で作成する必要があります。
Amazon Q Business の Application を作成する
スクリーンショットで今回の設定をご紹介します。
- マネジメントコンソールで
us-east-1
を選び、Amazon Q Business > Applications
でCreate application
をクリックします - Step 1 でアプリケーション名を指定し、 Service access で service-linked role を指定します
- Step 2 で Retriever を選びます。今回は
native retriever
を使います Amazon Kendra を使うこともできます。
⚠️ ドキュメントによると Retriever は後で変更できない[2]ので注意してください - Step 3 で S3 のデータソースを追加します。
バケット
yuta-qbusiness-test
を使って、kendra-sample
という名前で登録します。
IAM Role は Amazon Q Business に作ってもらいます。 - Step 4 で IAM Identity Center に登録しておいたユーザーを選びます ここで選んだユーザーを使って、後ほど発行されるチャット画面にログインします。
チャット画面を開いてみる
これで Application が完成したので、チャット画面に移動してみます。
Amazon Q Business > Applications
を開き、作成した application の Web experience URL
を開きます。
IAM Identity Center の認証画面に移動するので、認証を済ませるとチャットの UI が表示されます。
現在は英語に最適化されている[3]ようなので、英語で質問を投げてみましょう。
まだ Application が何も学習していないのでうまく答えられていないです。
次に S3 のデータを同期して同じ質問を投げてみたいと思います。
Amazon Q Business にデータソースのデータを同期する
Amazon Q Business > Applications > blog-qbusiness-application
で先程作成した S3 のデータソースを選択し、Sync now
をクリックします。- 同期の状況を CloudWatch で観察:
Amazon Q Business > Applications > blog-qbusiness-application > kendra-sample
でView in CloudWatch
をクリックします - CloudWatch Logs Insights の画面に遷移しますが、処理に時間がかかるようなので数分待つとログが見れます。
もう一度チャットで質問してみる
しばらく時間が経つと同期が終わるので、もう一度チャットで同じ質問をしてみます。
今回はちゃんと回答してくれました!
ソースまできちんと提示してくれるので、回答の根拠となる情報を取得するのも非常に簡単ですね。
最後に
今回は新しく一般提供になった生成 AI 搭載アシスタント である Amazon Q Business で S3 バケットのデータを連携してみました。
他にも Google Drive, Gmail, MySQL, Slack, Zendesk など様々なデータソースと連携することが可能です。
今までは担当者に聞かなくてはならなかったことも AI に聞けばソース付きで答えてくれるというのはものすごく便利ですね。
参考
[1] Step 1: Adding documents to Amazon S3. (n.d.). Amazon Kendra. Retrieved May 13, 2024, from https://docs.aws.amazon.com/kendra/latest/dg/tutorial-search-metadata-add-documents.html
[2] Creating and selecting a retriever for an Amazon Q Business application. (n.d.). Amazon Q Business. Retrieved May 13, 2024, from https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/select-retriever.html
[3] Supported languages for Amazon Q Business. (n.d.). Amazon Q Business. Retrieved May 13, 2024, from https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/supported-languages.html